Kurvenscheiben-Antrieb mit Hilfe einer virtuellen Zeitachse steuern
Sehen Sie hierzu das Beispielprojekt PLCopenMulti.project im Installationsverzeichnis von CODESYS unter ..\CODESYS SoftMotion\Examples.
Das folgende Beispiel demonstriert, wie Sie eine periodische Kurvenscheibe auf einen linearen Antrieb umsetzen. Das Beispiel zeigt weiterhin, wie Sie die Nockenfunktion anwenden können.
Fügen Sie im Gerätebaum unter Applikation eine Kurvenscheibe mit dem Namen
Exampleein. Öffnen Sie die Kurvenscheibe im Editor.Definieren Sie in der Registerkarte Nocken eine Nocke.
X:
8.0positiver Durchlauf:
Invertierennegativer Durchlauf:
Invertieren
Fügen Sie im Gerätebaum unter SoftMotion General Axis Pool einen virtuellen Antrieb mit dem Namen
Driveein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von360.Fügen Sie einen weiteren virtuellen Antrieb mit dem Namen
Virtualein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von10.Erstellen Sie ein Programm MOTION_PRG in der Sprache CFC.
PROGRAM MOTION_PRG VAR power1, power2: MC_Power; TableSelect: MC_CamTableSelect; CamIn: MC_CamIn; Tappet: SMC_GetTappetValue; MoveVirtual: MC_MoveVelocity; END_VARFügen Sie einen Baustein ein und weisen Sie ihm die Variable
power1zu. Der Baustein dient dem Einschalten des Antriebs vonDrive.Belegen Sie die Eingänge wie folgt:
Axis:
DriveEnable:
TRUEbRegulatorOn:
TRUEbDriveStart
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
power2zu. Der Baustein dient dem Einschalten des Antriebs vonVirtual.Belegen Sie die Eingänge wie folgt:
Axis:
VirtualEnable:
TRUEbRegulatorOn:
TRUEbDriveStart
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
MoveVirtualzu. Der Baustein dient der Bewegung des virtuellen Masters.Belegen Sie die Eingänge wie folgt:
Axis:
VirtualExecute:
power2.StatusVelocity:
2Acceleration
10Deceleration
10Direction
positive
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
TableSelectzu. Der Baustein dient der Auswahl der Kurvenscheibe.Belegen Sie die Eingänge wie folgt:
Master:
VirtualSlave:
DriveCamTable:
ExampleExecute
TRUEPeriodic
TRUEMasterAbsolute
TRUESlaveAbsolute
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
CamInzu. Der Baustein setzt die ausgewählte Kurvenscheibe um.Belegen Sie die Eingänge wie folgt:
Master:
VirtualSlave:
DriveExecute
power1.StatusMasterOffset:
0SlaveOffset:
0MasterScaling:
1SlaveScaling:
1StartMode:
absoluteCamTableID:
TableSelect.CamTableIDVelocityDiff:
1Acceleration:
1Deceleration:
1TappetHysteresis:
1
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
Tappetzu. Der Baustein überprüft die Stellung des Nockenschalters.Belegen Sie die Eingänge wie folgt:
Tappets:
CamIn.TappetsiID:
1bInitValue
FALSEbSetInitValueAtReset:
FALSE
Die Nocke ist als invertierende Nocke definiert. Deshalb wird sie alle 10 Sekunden ihren Wert ändern.
Im Beispielprojekt sehen Sie eine Visualisierung, mit deren Hilfe Sie die einzelnen Bausteine und die Position der Achsen überprüfen können.
Fügen Sie den Aufruf des Programms
MOTION_PRGzur Task MainTask hinzu.Laden Sie das Projekt auf die Steuerung und starten Sie es.
Für weitere Informationen siehe: